<?php

namespace app\api\controller;

use app\api\business\UserBusiness;
use app\api\controller\AuthBase;
use app\api\validate\UserValidate;

// 资源控制器
class User extends AuthBase
{
    
    // 获取用户个人信息！
    public function index()
    {
        if (request()->isGet()) {
            # code...
            try {
                $userBus = new UserBusiness();
                // 这里的$this->userId 是authBase中的属性
                $result = $userBus->getNormalUserById($this->userId);
            } catch (\Exception $e) {
                return show(config('status.error'), $e->getMessage());
            }

            $userInfo = [
                'id' => $result->id,
                'username' => $result->username,
                'sex' => $result->sex
            ];
            return show(config('status.success'), '登录成功!', $userInfo);
        } else {
            return show(config('status.error'), '非法请求！');
        }
    }

    public function update($id)
    {
        $input = [
            'username' => input('put.username'),
            'sex' => input('put.sex')
        ];
        
        $validate = new UserValidate();
        if (!$validate->scene('userinfo')->check($input)) {
            # code...
            return show(config('status.error'), $validate->getError());
        }

        // 将数据传入逻辑层中
        try {
            $result = (new UserBusiness)->update($id, $input);
        } catch (\Exception $e) {
            return show(config('status.error'), $e->getMessage());
        }

        return show(config('status.success'), '修改成功！');
    }
}
